草庐IT

Linux PID 回收

全部标签

读Java性能权威指南(第2版)笔记16_垃圾回收C

1. 调整堆的大小1.1. 随着堆的大小增加,停顿的持续时间也会增加1.2. 停顿发生的频率确实会降低,但是停顿的持续时间会拖慢整体性能1.3. 操作系统进行的交换对JVM是不公开的1.3.1. 操作系统要将数据从磁盘交换到RAM,这是一个代价高昂的操作1.4. 首要规则是设定堆的大小永远不要超过机器的物理内存1.4.1. 如果有多个JVM在运行,那么这适用于所有堆的总和1.5. -XmsN标志1.5.1. 初始值1.6. -XmxN标志1.6.1. 最大值1.7. 默认值1.7.2. 在物理内存小于192MB的机器上,堆的最大值会是物理内存的一半(96MB或更少)1.8. 如果JVM发现堆在

读Java性能权威指南(第2版)笔记17_垃圾回收D

1. 元空间(metaspace)1.1. 当JVM加载类时,它必须记录这些类的某些元数据,这些数据占据的一个单独的堆空间,即元空间1.2. 元空间里的信息只在编译器和JVM运行时使用,它所保存的数据被称为类元数据(classmetadata)1.2.1. 对于终端用户,元空间是不透明的1.2.2. 元空间并不保存类的实例或者反射对象1.3. 通过永久代(permgen)的实现来处理的1.4. 元空间的大小与它所使用的类的数量成正比1.5. -XX:MetaspaceSize=N1.5.1. 初始大小1.6. -XX:MaxMetaspaceSize=N1.6.1. 最大值1.7. 元空间大小

读Java性能权威指南(第2版)笔记17_垃圾回收D

1. 元空间(metaspace)1.1. 当JVM加载类时,它必须记录这些类的某些元数据,这些数据占据的一个单独的堆空间,即元空间1.2. 元空间里的信息只在编译器和JVM运行时使用,它所保存的数据被称为类元数据(classmetadata)1.2.1. 对于终端用户,元空间是不透明的1.2.2. 元空间并不保存类的实例或者反射对象1.3. 通过永久代(permgen)的实现来处理的1.4. 元空间的大小与它所使用的类的数量成正比1.5. -XX:MetaspaceSize=N1.5.1. 初始大小1.6. -XX:MaxMetaspaceSize=N1.6.1. 最大值1.7. 元空间大小

读Java性能权威指南(第2版)笔记18_垃圾回收E

1. 回收1.1. 找到不使用的对象1.2. 释放它们的内存1.3. 压缩堆1.4. 合在一起称为回收2. Throughput回收器2.1. 工作细节比较简单2.1.1. 可以在同一个GC周期内完成回收2.1.2. 在单次操作过程中回收新生代或老年代2.2. MinorGC2.2.1. 当Eden空间被填满时,新生代回收就会发生2.2.2. 新生代回收会将所有的对象移出Eden空间2.2.2.1. Eden空间一般是空的2.2.2.2. 不认为它被压缩了2.2.3. 另一些被移到老年代2.2.4. 还有大量对象因不再使用而被丢弃2.3. FullGC2.3.1. 老年代回收会将新生代中的所有

读Java性能权威指南(第2版)笔记18_垃圾回收E

1. 回收1.1. 找到不使用的对象1.2. 释放它们的内存1.3. 压缩堆1.4. 合在一起称为回收2. Throughput回收器2.1. 工作细节比较简单2.1.1. 可以在同一个GC周期内完成回收2.1.2. 在单次操作过程中回收新生代或老年代2.2. MinorGC2.2.1. 当Eden空间被填满时,新生代回收就会发生2.2.2. 新生代回收会将所有的对象移出Eden空间2.2.2.1. Eden空间一般是空的2.2.2.2. 不认为它被压缩了2.2.3. 另一些被移到老年代2.2.4. 还有大量对象因不再使用而被丢弃2.3. FullGC2.3.1. 老年代回收会将新生代中的所有

读Java性能权威指南(第2版)笔记19_垃圾回收F

1. G1垃圾回收器1.1. 垃圾优先(garbagefirst)1.2. 在堆内离散的区域上进行操作1.2.1. 默认大约有2048个1.2.2. 代的区域不需要是连续的1.2.3. 可能属于老年代1.2.3.1. 并发后台线程寻找没有被引用的对象时,一些区域会比其他区域有更多的垃圾1.2.4. 可能属于新生代1.3. 并发回收器(concurrentcollector)1.3.1. 标记老年代中不使用的对象和应用程序线程同时发生(它们同时运行)1.3.2. 并不是完全并发的1.3.2.1. 新生代的标记和压缩仍需要暂停所有应用程序线程1.3.2.2. 老年代的压缩也是在应用程序线程暂停期间

读Java性能权威指南(第2版)笔记19_垃圾回收F

1. G1垃圾回收器1.1. 垃圾优先(garbagefirst)1.2. 在堆内离散的区域上进行操作1.2.1. 默认大约有2048个1.2.2. 代的区域不需要是连续的1.2.3. 可能属于老年代1.2.3.1. 并发后台线程寻找没有被引用的对象时,一些区域会比其他区域有更多的垃圾1.2.4. 可能属于新生代1.3. 并发回收器(concurrentcollector)1.3.1. 标记老年代中不使用的对象和应用程序线程同时发生(它们同时运行)1.3.2. 并不是完全并发的1.3.2.1. 新生代的标记和压缩仍需要暂停所有应用程序线程1.3.2.2. 老年代的压缩也是在应用程序线程暂停期间

读Java性能权威指南(第2版)笔记21_垃圾回收H

1. 巨型对象1.1. humongousobject1.2. 大于等于区域一半大小的对象1.3. 巨型对象被直接分配在老年代,所以它在新生代回收期间不会被释放1.4. G1区域的大小是2的幂,最小值是1MB1.5. 如果堆的最大值和初始值差别很大,就会有过多的G1区域,这种情况下应该增加G1区域的大小1.6. -XX:G1HeapRegionSize=N1.6.1. G1的区域大小1.6.2. 默认值名义上是02. 完全掌控堆的大小2.1. 堆的默认值取决于机器的内存量2.1.1. XX:MaxRAM=N标志2.2. 堆的最大值是MaxRAM的四分之一2.3. 将32位Windows服务器的

读Java性能权威指南(第2版)笔记21_垃圾回收H

1. 巨型对象1.1. humongousobject1.2. 大于等于区域一半大小的对象1.3. 巨型对象被直接分配在老年代,所以它在新生代回收期间不会被释放1.4. G1区域的大小是2的幂,最小值是1MB1.5. 如果堆的最大值和初始值差别很大,就会有过多的G1区域,这种情况下应该增加G1区域的大小1.6. -XX:G1HeapRegionSize=N1.6.1. G1的区域大小1.6.2. 默认值名义上是02. 完全掌控堆的大小2.1. 堆的默认值取决于机器的内存量2.1.1. XX:MaxRAM=N标志2.2. 堆的最大值是MaxRAM的四分之一2.3. 将32位Windows服务器的

读Java性能权威指南(第2版)笔记20_垃圾回收G

1. Survivor空间1.1. 新生代被划分为两个Survivor空间和一个Eden空间的原因1.1.1. 刚刚被创建并且还在使用中,所以不能被回收,但它们的寿命并没有长到足以进入老年代1.1.2. 仍在新生代中的对象有额外的机会被回收,而不是晋升到(并填满)老年代1.2. 首次新生代回收期间,对象从Eden空间移动到Survivor空间01.3. 下次回收时,活跃对象会从Survivor空间0和Eden空间移动到Survivor空间11.3.1. 此时Eden空间和Survivor空间0完全是空的1.4. 被移入老年代场景1.4.1. Survivor空间非常小,当目标Survivor空